package com.hongxin.nw.netty.mq_info.domain;


import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * 充电桩上报最新一次充电信息
 * 充电桩上报最新一次充电信息。充电桩给汽车充完电，网络正常应该立即上报此报文
 * 1.	充电结束后，主动上报此充电报文
 * 2.	若上报此报文没有收到服务器应答报文，则间隔10再上报，直到服务器应答为止
 * 3.	此命令只上报最近的一条充电记录
 * 4.	28-76字段只在峰平谷计费策略时有效，否则置0
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CMD202 {

    /**
     * 充电桩编码，ASCII编码
     */
    private String machineId = "";

    /**
     * 总记录条数
     */
    private String recordCount = "";

    /**
     * 当前记录索引
     */
    private String indexOfRecords = "";

    /**
     * 流水单号
     * 8字节流水单号
     */
    private String cpOrderId = "";

    /**
     * 充电枪类型
     * 1-直流 2-交流
     */
    private String interfaceType = "";

    /**
     * 充电枪口
     */
    private String  interfaceNumber = "";

    /**
     * 用户卡号/用户识别号/VIN号
     */
    private String userId = "";

    /**
     * TODO: 时间
     * 充电开始时间
     */
    private String startDateTime = "";

    /**
     * TODO: 时间
     * 充电结束时间
     */
    private String endDateTime = "";

    /**
     * 充电时间长度
     * 单位秒
     */
    private String chargingDuration = "";

    /**
     * 开始SOC
     */
    private String startSOC = "";

    /**
     * 结束SOC
     */
    private String endSOC = "";

    /**
     * 本次充电电量
     */
    private String chargingElectricQuantity = "";

    /**
     * 充电前电表读数
     */
    private String beforeMeterIndication = "";

    /**
     * 充电后电表读数
     */
    private String afterMeterIndication = "";

    /**
     * 本次充电金额
     */
    private String totalFee = "";

    /**
     * 电费金额
     */
    private String eleFee = "";

    /**
     * 服务费金额
     */
    private String serviceFee = "";

    /**
     * 停车费金额
     */
    private String parkingFee = "";

    /**
     * 结束方式
     * 0--刷卡结束
     * 1--不刷卡结束
     * 2--网络后台结束
     */
    private String finishMode = "";

    /**
     * 充电前卡余额
     */
    private String beforeBalance = "";

    /**
     * 充电后卡余额
     */
    private String afterBalance = "";

    /**
     * 是否已支付
     */
    private String paid = "";

    /**
     * 充电策略
     * 0:充满为止
     * 1:时间控制充电
     * 2:金额控制充电
     * 3:电量控制充电
     */
    private String chargingPolicy = "";

    /**
     * 充电策略参数
     * 时间单位为1秒
     * 金额单位为0.01元
     * 电量时单位为0.01kw
     */
    private String policyParam = "";

    /**
     * 车辆 VIN
     * 可选项，没有填’\0’
     */
    private String VIN = "";

    /**
     * 车牌号
     * 可选项，没有填’\0’
     */
    private String numberPlate = "";


    /**
     * 时段电量's
     */
    private String timingElectricQuantity = "";


    /**
     * 充电启动方式
     * 0：本地刷卡启动
     * 1：后台启动
     * 2：本地管理员启动
     * 3：本地刷卡+车牌鉴权启动
     * 4：vin号鉴权启动
     */
    private String startMode = "";

    /**
     * 状态个数，个数可以是一个或多个
     */
    private String stateCount = "";

    /**
     * 状态，请参考：充电桩状态与告警
     */

    private String states = "";


    public String getMachineId() {
        return machineId;
    }

    public void setMachineId(String machineId) {
        this.machineId = machineId;
    }

    public String getRecordCount() {
        return recordCount;
    }

    public void setRecordCount(String recordCount) {
        this.recordCount = recordCount;
    }

    public String getIndexOfRecords() {
        return indexOfRecords;
    }

    public void setIndexOfRecords(String indexOfRecords) {
        this.indexOfRecords = indexOfRecords;
    }

    public String getCpOrderId() {
        return cpOrderId;
    }

    public void setCpOrderId(String cpOrderId) {
        this.cpOrderId = cpOrderId;
    }

    public String getInterfaceType() {
        return interfaceType;
    }

    public void setInterfaceType(String interfaceType) {
        this.interfaceType = interfaceType;
    }

    public String getInterfaceNumber() {
        return interfaceNumber;
    }

    public void setInterfaceNumber(String interfaceNumber) {
        this.interfaceNumber = interfaceNumber;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getStartDateTime() {
        return startDateTime;
    }

    public void setStartDateTime(String startDateTime) {
        this.startDateTime = startDateTime;
    }

    public String getEndDateTime() {
        return endDateTime;
    }

    public void setEndDateTime(String endDateTime) {
        this.endDateTime = endDateTime;
    }

    public String getChargingDuration() {
        return chargingDuration;
    }

    public void setChargingDuration(String chargingDuration) {
        this.chargingDuration = chargingDuration;
    }

    public String getStartSOC() {
        return startSOC;
    }

    public void setStartSOC(String startSOC) {
        this.startSOC = startSOC;
    }

    public String getEndSOC() {
        return endSOC;
    }

    public void setEndSOC(String endSOC) {
        this.endSOC = endSOC;
    }

    public String getChargingElectricQuantity() {
        return chargingElectricQuantity;
    }

    public void setChargingElectricQuantity(String chargingElectricQuantity) {
        this.chargingElectricQuantity = chargingElectricQuantity;
    }

    public String getBeforeMeterIndication() {
        return beforeMeterIndication;
    }

    public void setBeforeMeterIndication(String beforeMeterIndication) {
        this.beforeMeterIndication = beforeMeterIndication;
    }

    public String getAfterMeterIndication() {
        return afterMeterIndication;
    }

    public void setAfterMeterIndication(String afterMeterIndication) {
        this.afterMeterIndication = afterMeterIndication;
    }

    public String getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(String totalFee) {
        this.totalFee = totalFee;
    }

    public String getEleFee() {
        return eleFee;
    }

    public void setEleFee(String eleFee) {
        this.eleFee = eleFee;
    }

    public String getServiceFee() {
        return serviceFee;
    }

    public void setServiceFee(String serviceFee) {
        this.serviceFee = serviceFee;
    }

    public String getParkingFee() {
        return parkingFee;
    }

    public void setParkingFee(String parkingFee) {
        this.parkingFee = parkingFee;
    }

    public String getFinishMode() {
        return finishMode;
    }

    public void setFinishMode(String finishMode) {
        this.finishMode = finishMode;
    }

    public String getBeforeBalance() {
        return beforeBalance;
    }

    public void setBeforeBalance(String beforeBalance) {
        this.beforeBalance = beforeBalance;
    }

    public String getAfterBalance() {
        return afterBalance;
    }

    public void setAfterBalance(String afterBalance) {
        this.afterBalance = afterBalance;
    }

    public String getPaid() {
        return paid;
    }

    public void setPaid(String paid) {
        this.paid = paid;
    }

    public String getChargingPolicy() {
        return chargingPolicy;
    }

    public void setChargingPolicy(String chargingPolicy) {
        this.chargingPolicy = chargingPolicy;
    }

    public String getPolicyParam() {
        return policyParam;
    }

    public void setPolicyParam(String policyParam) {
        this.policyParam = policyParam;
    }

    public String getVIN() {
        return VIN;
    }

    public void setVIN(String VIN) {
        this.VIN = VIN;
    }

    public String getNumberPlate() {
        return numberPlate;
    }

    public void setNumberPlate(String numberPlate) {
        this.numberPlate = numberPlate;
    }

    public String getTimingElectricQuantity() {
        return timingElectricQuantity;
    }

    public void setTimingElectricQuantity(String timingElectricQuantity) {
        this.timingElectricQuantity = timingElectricQuantity;
    }

    public String getStartMode() {
        return startMode;
    }

    public void setStartMode(String startMode) {
        this.startMode = startMode;
    }

    public String getStateCount() {
        return stateCount;
    }

    public void setStateCount(String stateCount) {
        this.stateCount = stateCount;
    }

    public String getStates() {
        return states;
    }

    public void setStates(String states) {
        this.states = states;
    }
}
